<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    <!-- 页面meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>传智健康</title>
    <meta name="description" content="传智健康">
    <meta name="keywords" content="传智健康">
    <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" name="viewport">
    <!-- 引入样式 -->
    <link rel="stylesheet" href="../plugins/elementui/index.css">
    <link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
    <link rel="stylesheet" href="../css/style.css">
    <!-- 引入组件库 -->
    <script src="../js/vue.js"></script>
    <script src="../plugins/elementui/index.js"></script>
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script src="../js/axios-0.18.0.js"></script>
    <style>
        .avatar-uploader .el-upload {
            border: 1px dashed #d9d9d9;
            border-radius: 6px;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .avatar-uploader .el-upload:hover {
            border-color: #409EFF;
        }

        .avatar-uploader-icon {
            font-size: 28px;
            color: #8c939d;
            width: 178px;
            height: 178px;
            line-height: 178px;
            text-align: center;
        }

        .avatar {
            width: 178px;
            height: 178px;
            display: block;
        }

        .datatable {
            position: relative;
            box-sizing: border-box;
            -webkit-box-flex: 1;
            width: 100%;
            max-width: 100%;
            font-size: 14px;
            color: rgb(96, 98, 102);
            overflow: hidden;
            flex: 1 1 0%;
        }

        .datatable td, .datatable th {
            padding: 12px 0;
            min-width: 0;
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            text-overflow: ellipsis;
            vertical-align: middle;
            position: relative;
            text-align: left;
        }

        #title_name{
            padding-top: 10px;
            padding-left: 10px;
        }
    </style>

</head>
<body class="hold-transition">
<div id="app">
    <div class="content-header">
        <h1>首页
            <small>公司分布图</small>
        </h1>
        <el-breadcrumb separator-class="el-icon-arrow-right" class="breadcrumb">
            <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
            <el-breadcrumb-item>公司分布图</el-breadcrumb-item>
        </el-breadcrumb>
    </div>
    <div class="app-container">
        <div id="title_name">
            <font color="#00bfff">分布图&nbsp;&nbsp;&nbsp;&nbsp;</font>
            <span @click="showDetail()"><font>详细信息</font></span>
            <hr width="100%"/>
        </div>

        <object data="map.html" type="text/x-scriptlet" width="100%" height="570px"></object>

    </div>
</div>

</body>
<script type="text/javascript">
    var vue = new Vue({
        el: '#app',
        data: {
            autoUpload: true,//自动上传
            imageUrl: null,//模型数据，用于上传图片完成后图片预览
            activeName: 'first',//添加/编辑窗口Tab标签名称
            pagination: {//分页相关属性
                currentPage: 1,
                pageSize: 10,
                total: 100,
                queryString: null,
            },
            dataList: [],//列表数据
            formData: {},//表单数据
            tableData: [],//添加表单窗口中检查组列表数据
            checkgroupIds: [],//添加表单窗口中检查组复选框对应id
            dialogFormVisible: false,//控制添加窗口显示/隐藏
            obj: []
        },
        // 钩子函数，Vue对象一创建，就执行该函数
        created() {
            if (location.search == "1") {
                //关闭弹窗
                this.dialogFormVisible = false;
            }
            this.findPage();
        },

        methods: {

            //文件上传成功后的钩子，response为服务端返回的值，file为当前上传的文件封装成的js对象
            handleAvatarSuccess(response, file) {
                // 上传成功后，解析返回值。为模型数据imageUrl赋值，将图片名称和七牛云的路径赋值imageUrl，展示图片。
                this.imageUrl = "http://localhost:8080/fileServer/upload/" + response.data;

                // 将图片名称赋值给formData，后续通过ajax请求，提交到后台保存到数据库。
                this.formData.img = response.data;
            },

            //上传图片之前执行
            beforeAvatarUpload(file) {
                const isJPG = file.type === 'image/jpeg';
                const isLt2M = file.size / 1024 / 1024 < 2;
                if (!isJPG) {
                    this.$message.error('上传套餐图片只能是 JPG 格式!');
                }
                if (!isLt2M) {
                    this.$message.error('上传套餐图片大小不能超过 2MB!');
                }
                return isJPG && isLt2M;
            },

            //跳转到详细信息页面
            showDetail(){
                location.href = '/pages/scattergram_detail.html';
            },

            //添加
            handleAdd() {

                this.obj[0] = this.checkgroupIds;
                this.obj[1] = this.formData;

                // 不管添加成功还是失败，都要关闭表单
                this.dialogFormVisible = false;

                // 点击确定按钮之后，发送ajax请求，将表单数据提交到后台
                axios.post("/setmeal/add.do", this.obj).then((resp) => {
                    // 解析返回的json数据，进行判断

                }).finally(() => {
                    // 不管成功还是失败，都要在次分页查询
                    this.findPage();
                });
            },

            //分页查询
            findPage() {
                axios.post("/setmeal/findPage.do", this.pagination).then(resp => {
                    //分页数据回显
                    this.dataList = resp.data.rows;
                    this.pagination.total = resp.data.total;
                })
            },
            // 重置表单
            resetForm() {
                // 让formData的值为空，就能实现表单重置
                this.formData = {};
            },
            // 弹出添加窗口
            handleCreate() {
                // 点击新建按钮之后，将dialogFormVisible设置为true，显示表单
                this.dialogFormVisible = true;
                // 显示表单后，重置表单，不让上一次操作的数据留下
                this.resetForm();
                // 每次让表单显示在 “新增套餐基本信息” 栏
                this.activeName = 'first';
                // 重置checkgroupIds，清空勾选框
                this.checkgroupIds = [];
                // 重置imageUrl，清空图片
                this.imageUrl = null;

                // 发送ajax请求，获取所有的检查组数据
                axios.post("/checkgroup/findAll.do").then((resp) => {
                    // 获取成功，展示数据
                    this.tableData = resp.data;
                });
            },
            //切换页码
            handleCurrentChange(currentPage) { // currentPage：表示翻页之后的新页码
                // 将翻页之后的新页码，赋值个pagination中的当前页码
                this.pagination.currentPage = currentPage;
                // 赋值后再次分页查询，达到分页效果
                this.findPage();
            }
        }
    })
</script>

</html>

